package com.zxl.observer;

import java.util.ArrayList;
import java.util.List;

/**
 * ����֪ͨ�� ������жԹ۲��ߵ����ñ�����һ���ۼ��ÿ�����嶼�������κ������Ĺ۲���
 * ���������ṩһ���ӿڿ������Ӻ�ɾ��۲��߶���
 * @author zxl
 * 2016��7��12��
 */
public abstract class Subject {
	private List<Observer> observerList = new ArrayList<Observer>();
	
	
	/**
	 * ���ӹ۲���
	 * 
	 * zxl
	 * 2016��7��12�� ����2:18:26
	 * @param observer
	 * void
	 */
	public void attach(Observer observer){
		observerList.add(observer);
	}
	
	/**
	 * �Ƴ�۲���
	 * 
	 * zxl
	 * 2016��7��12�� ����2:18:40
	 * @param observer
	 * void
	 */
	public void detach(Observer observer){
		observerList.remove(observer);
	}
	
	public void notice(){
		for(Observer observer : observerList){
			observer.update();
		}
	}
}
